Git Submodules क्या हैं?
Git submodules Git .
यह उन पुस्तकालयों या निर्भरताओं को जोड़ने के लिए उपयोगी है जिन्हें अलग-अलग रिपॉजिटरी में प्रबंधित किया जाता है, जिससे उनका प्रतिबद्ध इतिहास अद्वितीय रहता है।
सबमॉड्यूल का उपयोग क्यों किया जाना चाहिए?
जब आप चाहें तो सबमॉड्यूल उपयोगी होते हैं:
अन्य प्रोजेक्ट से कोड का पुन: उपयोग करें
किसी अन्य प्रोजेक्ट से कोड का पुन: उपयोग करें
किसी विशिष्ट कमिट में लाइब्रेरी को ट्रैक करें
किसी विशिष्ट प्रतिबद्धता में लाइब्रेरी या निर्भरता को ट्रैक करें
प्रोजेक्ट इतिहास को अद्वितीय रखें
प्रोजेक्ट इतिहास को अद्वितीय रखें
सबमॉड्यूल कैसे जोड़ें
अपने प्रोजेक्ट में एक सबमॉड्यूल जोड़ने के लिए, इसका उपयोग करें:
उदाहरण: एक सबमॉड्यूल जोड़ें
git submodule add https://github.com/example/library.git libs/library
यह एक उपनिर्देशिका हैlibs/libraryजानकारी के साथ बनाता है और सबमॉड्यूल करता है.gitmodulesअद्यतन.
सबमॉड्यूल के साथ रिपॉजिटरी को कैसे क्लोन करें
जब आप सबमॉड्यूल वाले भंडार को क्लोन करते हैं, तो आपको उनकी सामग्री को विशिष्ट रूप से प्राप्त करने की आवश्यकता होती है:
उदाहरण: सबमॉड्यूल को प्रारंभ और अद्यतन करें
git submodule init
git submodule update
या क्लोनिंग करते समय यह सब एक साथ करें:
उदाहरण: सबमॉड्यूल के साथ क्लोन
git clone --recurse-submodules https://github.com/user/repo.git
सबमॉड्यूल स्थिति की जांच कैसे करें
अपने सबमॉड्यूल की वर्तमान प्रतिबद्धता और स्थिति देखने के लिए, इसका उपयोग करें:
उदाहरण: सबमॉड्यूल स्तर
git submodule status
सभी सबमॉड्यूल में कमांड कैसे चलाएं
प्रत्येक सबमॉड्यूल एक कमांड चला सकता है। उदाहरण के लिए, उनकी स्थिति जांचें:
उदाहरण: foreach
git submodule foreach git status
सबमॉड्यूल को कैसे अपडेट करें
सबमॉड्यूल को उनके दूरस्थ रिपॉजिटरी से नवीनतम कमिट में अपडेट करने के लिए:
उदाहरण: सभी सबमॉड्यूल अपडेट करें
git submodule update --remote
किसी सबमॉड्यूल को कैसे हटाएं
किसी सबमॉड्यूल को हटाने के लिए:
.gitmodulesसे संबंधित भाग को हटा दें- अपने कार्य ट्री से सबमॉड्यूल निर्देशिका हटाएँ
git rm --cached path/to/submoduleचालू करो
.gitmodules के बारे में
.gitmodulesफ़ाइल सभी सबमॉड्यूल और उनके पथों का ट्रैक रखती है। यदि आप सबमॉड्यूल को स्थानांतरित करते हैं या हटाते हैं तो इस फ़ाइल को संपादित करें।
उदाहरण: .gitmodules फ़ाइल
[submodule "libs/library"]
path = libs/library
url = https://github.com/example/library.git
समस्या निवारण और सर्वोत्तम अभ्यास
यदि क्लोनिंग के बाद सबमॉड्यूल खाली हैं
git submodule update --init --recursiveचालू करो
यदि आप सबमॉड्यूल का URL बदलते हैं
.gitmodulesऔर.git/configदोनों को अपडेट करें
सबमॉड्यूल हमेशा एक विशिष्ट प्रतिबद्धता की ओर इशारा करते हैं
सबमॉड्यूल हमेशा एक विशिष्ट प्रतिबद्धता की ओर इशारा करते हैं, कभी भी नवीनतम प्रतिबद्धता की ओर नहीं - यदि आप नए परिवर्तन चाहते हैं तो अपडेट करना याद रखें
बाहरी परियोजनाओं के लिए जो मानक संस्करण की निगरानी करना चाहते हैं
उन बाहरी परियोजनाओं के लिए सबमॉड्यूल रखें जिन्हें आप मानक संस्करण में ट्रैक करना चाहते हैं। सरल आवश्यकताओं के लिए, Git सबट्री या फ़ाइलों की प्रतिलिपि बनाने जैसे परिवर्तनों पर विचार करें
महत्वपूर्ण नोट
जस्सिफ टीम नोट
सबमॉड्यूल शक्तिशाली हैं, लेकिन प्रबंधन करना कठिन है।
किसी अन्य प्रोजेक्ट को किसी विशिष्ट कमिट में ट्रैक करने के लिए।
सबमॉड्यूल जटिल प्रोजेक्ट सेटअप के लिए बहुत अच्छे हैं, लेकिन सरल आवश्यकताओं के लिए विकल्पों पर विचार करें।
त्वरित संदर्भ
सबमॉड्यूल जोड़ें
नया सबमॉड्यूल
git submodule add URL
सबमॉड्यूल के साथ क्लोन
सभी सबमॉड्यूल के साथ
git clone --recurse-submodules
सबमॉड्यूल अपडेट करें
हालिया बदलाव
git submodule update --remote
स्थिति जाँचिए
सबमॉड्यूल स्तर
git submodule status